package edu.del.newsreleasesystem.es.document;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.*;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * Elasticsearch 中的新闻文档映射实体
 * 对应 MySQL 中的 News 表，用于全文检索、同步展示等
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(indexName = "news", createIndex = true)
@Mapping
public class NewsEsDocument {
    // 新闻ID，主键
    @Id
    private Integer id;

    // 新闻标题
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String title;

    // 新闻内容
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String content;

    // 作者
    @Field(type = FieldType.Keyword, index = false)
    private String author;

    // 分类
    @Field(type = FieldType.Keyword, index = false)
    private String category;

    // 发布时间
    @Field(type = FieldType.Date, format = DateFormat.date_time)
    private Date publishTime;

    // 状态，如：已发布、草稿等
    @Field(type = FieldType.Keyword)
    private String status;
}
